Secure Socket Programming একটি প্রক্রিয়া যেখানে SSL/TLS প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ সংযোগ স্থাপন করা হয়। এটি ডেটা এনক্রিপ্ট করে এবং নিশ্চিত করে যে ডেটা নিরাপদে আদান-প্রদান হচ্ছে, যাতে তৃতীয় পক্ষের আক্রমণ (Man-in-the-Middle Attacks) এড়ানো যায়। Secure Socket Programming ওয়েব অ্যাপ্লিকেশন, ইমেইল ক্লায়েন্ট, FTP সার্ভার এবং অন্যান্য নেটওয়ার্ক অ্যাপ্লিকেশনে ব্যবহৃত হয়। নিচে Secure Socket Programming এর প্রয়োগ নিয়ে বিস্তারিত আলোচনা করা হলো।
SSL/TLS ব্যবহার করে Secure Socket Programming করতে হলে নিম্নোক্ত ধাপগুলো অনুসরণ করা হয়:
SSL/TLS Context তৈরি করা:
Socket তৈরি করা এবং Bind করা:
SSL/TLS Handshake পরিচালনা করা:
Data Transmission:
Connection Closure:
Python-এ Secure Socket Programming করতে SSL/TLS প্রোটোকল ব্যবহার করে কীভাবে একটি নিরাপদ ক্লায়েন্ট-সার্ভার অ্যাপ্লিকেশন তৈরি করা যায়, তা নিয়ে নিচে একটি উদাহরণ দেওয়া হলো।
import socket
import ssl
# SSL Context তৈরি করা
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile="server.crt", keyfile="server.key")
# TCP Socket তৈরি এবং Bind করা
bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bind_socket.bind(('localhost', 8443))
bind_socket.listen(5)
print("Server is listening on port 8443...")
while True:
# ক্লায়েন্ট সংযোগ গ্রহণ করা
client_socket, addr = bind_socket.accept()
print(f"Connection from {addr} accepted.")
# Secure Socket তৈরি করা
secure_socket = context.wrap_socket(client_socket, server_side=True)
try:
# ডেটা গ্রহণ করা
data = secure_socket.recv(1024)
print(f"Received: {data.decode()}")
# ডেটা পাঠানো
secure_socket.sendall(b"Hello from secure server!")
except Exception as e:
print(f"Error: {e}")
finally:
secure_socket.close()
wrap_socket()
ফাংশনের মাধ্যমে একটি Secure Socket তৈরি করা হয়েছে।import socket
import ssl
# SSL Context তৈরি করা
context = ssl.create_default_context()
# TCP সংযোগ তৈরি করা
client_socket = socket.create_connection(('localhost', 8443))
# Secure Socket তৈরি করা
secure_socket = context.wrap_socket(client_socket, server_hostname='localhost')
try:
# ডেটা পাঠানো
secure_socket.sendall(b"Hello secure server!")
# ডেটা গ্রহণ করা
data = secure_socket.recv(1024)
print(f"Received: {data.decode()}")
finally:
secure_socket.close()
wrap_socket()
ফাংশনের মাধ্যমে একটি Secure Socket তৈরি করা হয়েছে এবং এটি সার্ভারের সাথে নিরাপদ সংযোগ স্থাপন করেছে।ডেটা সুরক্ষা:
সার্ভার এবং ক্লায়েন্ট প্রমাণীকরণ:
ডেটার ইন্টেগ্রিটি রক্ষা:
ওয়েব এবং অ্যাপ্লিকেশন সিকিউরিটি:
Confidentiality:
Authentication:
Data Integrity:
Easy Implementation:
common.read_more